/*
 * Copyright (C) 2018 wxyz <hyhjwzx@126.com>
 * This program can be distributed under the terms of the GNU GPL Version 2.
 * See the file LICENSE.
 *
 */

package ren.wxyz.study.euler.util;

/**
 * 数据帮助类
 *
 * @auther wxyz 2018-02-28_20:38
 * @since 1.0
 */
public class MathHelper {

    /**
     * 判断一个数是否是质数（素数）
     *
     * @param num 要判断的数
     * @return 质数返回true
     */
    public static boolean isPrimeNumber(long num) {
        long middleNumber = (long) Math.sqrt(num);

        for (int i = 2; i <= middleNumber; i++) {
            if (num % i == 0) {
                return false;
            }
        }

        return true;
    }

    /**
     * 初始化一个数组，从 1 开始，每次加 1
     *
     * @param maxNumber 最大的数
     * @return 数列
     */
    public static int[] initNumberArray(int maxNumber) {
        int[] num = new int[maxNumber];
        // 初始化整除数
        for (int i = 0; i < maxNumber; i++) {
            num[i] = i + 1;
        }

        return num;
    }

    /**
     * 将字符数组转换成数字数组
     *
     * @param numStr 字符串
     * @return 数字列表
     */
    public static int[] toIntegerArray(char[] numStr) {
        int[] nums = new int[numStr.length];

        for (int i = 0; i < nums.length; i++) {
            nums[i] = numStr[i] - '0';
        }

        return nums;
    }
}
